รู้หรือไม่ ?! นอกจาก MEAN Stack และ MERN Stack แล้วนั้น ยังมี Stack ในการพัฒนาเว็บอีกรูปแบบหนึ่งที่กำลังเป็นที่นิยมของชาวเว็บเดฟ...นั่นคือ JAMstack
.
แล้วมันคืออะไร ? มีหลักการทำงานยังไง ? วันนี้แอดจะพาทุกคนไปรู้จักเจ้า JAMstack ไปพร้อม ๆ กัน หากพร้อมแล้วไปอ่านกันเลย !!
.
🌟 JAMstack - เป็นสถาปัตยกรรมสำหรับการพัฒนาเว็บบนพื้นฐานของ JavaSctipt, APIs, และ Markup ออกแบบมาเพื่อให้ผู้พัฒนาสามารถสร้างเว็บเร็ว ปลอดภัย และสามารถปรับขนาดได้ง่ายมากขึ้น
.
✏️ โดย JAM ย่อมาจาก
.
🔸 JavaScript - เป็นภาษาโปรแกรมมิ่งที่ใช้ในการพัฒนา Front-end หรือรวมไปถึง JavaSctipt Framework หรือ Library อื่น ๆ ที่ใช้ในการพัฒนาเว็บไซต์แบบไดนามิกบนฝั่ง Client
.
🔸 APIs (Application Programming Interface) - คือวิธีร้องขอข้อมูลที่ต้องการจากโปรแกรมหรือแอปพลิเคชันจากปลายทาง โดยจะเชื่อมต่อกับฝั่ง JavaScript ผ่าน HTTP Protocol
.
🔸 Markup - เป็นรูปแบบ Template ที่ใช้ในการแสดงและจัดรูปแบบหน้าเว็บ
.
⚙️ หลักการทำงาน
.
การสร้างเว็บแบบเดิมจะทำงานในส่วนเซิร์ฟเวอร์เป็นหลัก อย่างเช่น ถ้าเราอยากสร้างเว็บไซต์ที่ต้องดึงข้อมูลจาก API ออกมาแสดงผลแบบเรียลไทม์ ก็จะต้องเขียนแอปฝั่ง Back-End เพื่อดึงข้อมูลออกมาอย่างต่อเนื่อง และสิ่งเหล่านี้จะทำงานบนเซิร์ฟเวอร์ เมื่อผู้ใช้เปิดเว็บก็จะสร้างหน้า HTML เพื่อแสดงคะแนนเหล่านั้นให้กับผู้ใช้ ซึ่งถ้ารีเฟรชหน้าก็จะต้องทำขึ้นตอนเหล่านี้ใหม่เรื่อย ๆ ทำให้ใช้เวลานาน และหากมีผู้เข้าใช้จำนวนมากอาจจะทำให้เว็บไซต์ล่มได้นั่นเอง
.
แต่ JAMstack จะแยกส่วนการทำงานทั้งหมด เชื่อมต่อระบบต่าง ๆ ด้วย API และใช้ CDN เป็นตัวกลางในการเชื่อมต่อ เมื่อเราสร้าง Template (ด้วย Framework จาก JavaSctipt เช่น Gastby, Next, Nuxt, Jekyll) ก็จะถูกเก็บไว้ใน CDN เป็น Static File เมื่อผู้ใช้เปิดเว็บ CDN ก็จะส่งเป็น Static File ออกมาแสดง จากนั้นเว็บก็จะไปทำการเรียก API เพื่อดึงข้อมูลมาแสดงตาม Template ที่มีการเรียกใช้ไว้แล้ว ซึ่งจะทำให้เว็บโหลดได้เร็วมากขึ้น คือแสดงผลได้เลยไม่ต้องรอนาน และเราก็ไม่ต้องยุ่งยากในการเขียนโค้ดทางฝั่ง Back-End และเซิร์ฟเวอร์ก็ไม่ต้องรับภาระหนักอีกต่อไป
✨ ประโยชน์
.
ความรวดเร็ว - การสร้างเว็บด้วย JAMStack สามารถแสดงข้อมูลเพราะไฟล์ต่าง ๆ ถูกสร้างไว้ล่วงหน้าแล้วเพื่อรอให้ CDN เรียกใช้เมื่อผู้ใช้เปิดเว็บก็จะแสดงได้อย่างรวดเร็ว โดยไม่ต้องเซิร์ฟเวอร์ Request และ Response นั่นเอง
.
ให้ประสบการณ์ที่ดีกับนักพัฒนา - สามารถสร้างด้วยเครื่องมือที่หลากหลาย ไม่ขึ้นกับเทคโนโลยีใดเทคโนโลยีหนึ่ง สร้างเว็บได้ง่ายโดยสามารถใช้เครื่องมือที่เหล่าเดฟถนัดอยู่แล้วมาพัฒนาได้
.
บำรุงรักษาได้ง่าย - เพราะมีการทำงานแบบแยกส่วนกัน การแก้ไขหรืออัปเดตแต่ละส่วนได้ง่ายโดยไม่ต้องกระทบกัน
.
.
📑 อ่านข้อมูลเพิ่มเติมที่นี่ : https://www.cloudflare.com/learning/performance/what-is-jamstack/ , https://jamstack.org/what-is-jamstack/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#JAMstack #webdelopment #BorntoDev